/**
 * 语法
 */
//创建一个带有两个参数的函数
let sum = new Function('a', 'b', 'return a + b');
console.info(sum(3,1));
//没有参数的函数，只有函数体
let sayHi=new Function("console.info('Hi')");
sayHi();


/**
 * 闭包
 */
// function getFunc() {
//     let value = "test";
  
//     let func = new Function('console.info(value)');
  
//     return func;
//   }
  
//   getFunc()(); // error: value is not defined

//将其与常规行为进行比较：
function getFunc() {
    let value = "test";
    let func = function() { console.info(value); };
    return func;
}
getFunc()(); // "test"，从 getFunc 的词法环境中获取的

